package ar.edu.utn.frsf.tpae.a2012.g05.dao;

import java.math.BigDecimal;
import java.util.List;

import ar.edu.utn.frsf.tpae.a2012.g05.entity.Cuenta;

public interface CuentaDao {

	public Cuenta saveOrUpdate(Cuenta cuenta);
	public void delete(Cuenta cuenta) throws Exception;
	public Cuenta findById(Integer id);
	public Cuenta findByNumber(Integer id);
	public List<Cuenta> findByUserNumber(Integer id);
	public List<Cuenta> findAll();
	
	/**
	 * Este metodo tiene la responsabilidad de retornar el saldo actual
	 * de la cuenta con el id que se le pasa como parametro.
	 * 
	 * @param idCliente
	 * @param idCuenta
	 * @return Saldo actual de la cuenta
	 * @throws Exception si no encuentra una cuenta con el idCuenta
	 */
	public BigDecimal getSaldo(Integer idCuenta) throws Exception;
	
	
	/**
	 * Este metodo tiene la responsabilidad de debitar un monto a una cuenta.
	 * 
	 * @param cuenta
	 * @param monto
	 */
	public void debitar(Cuenta cuenta, BigDecimal monto);
	
	
}
